package com.linkhub.oms.admin.modules.product.domain.vo;

import com.linkhub.oms.admin.modules.product.domain.param.AmountDeclares;
import com.linkhub.oms.admin.modules.product.domain.param.SingleProductInfo;
import com.linkhub.oms.admin.modules.supplier.domain.vo.SupplierVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @author Jaycle
 * @version 1.0.0
 * @Description LocalProductDetailsVO.java
 * @createTime 2024/05/07 22:46
 */
@Data
@ApiModel(value = "LocalProductDetailsVO", description = "LocalProductDetailsVO")
public class LocalProductDetailsVO implements Serializable {

    @ApiModelProperty(value = "商家用户ID")
    private String merchantUserId;

    @ApiModelProperty(value = "本地商品skuId")
    private String skuId;

    @ApiModelProperty(value = "sku")
    private String sku;

    @ApiModelProperty(value = "spu")
    private String spu;

    @ApiModelProperty(value = "英文品名")
    private String productEnTitle;

    @ApiModelProperty(value = "中文品名")
    private String productCTitle;

    @ApiModelProperty(value = "类目编码")
    private String categoryCode;

    @ApiModelProperty(value = "类目名称")
    private String categoryName;

    @ApiModelProperty(value = "供应商列表")
    private List<SupplierVO> supplierList;

    @ApiModelProperty(value = "upc码")
    private String upc;

    @ApiModelProperty(value = "fnsku码")
    private String fnsku;

    @ApiModelProperty(value = "系统商品条码")
    private String sysBarCode;

    @ApiModelProperty(value = "其他商品条码")
    private String otherCode;

    @ApiModelProperty(value = "型号")
    private String model;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "采购价格")
    private String purchasePrice;

    @ApiModelProperty(value = "图片")
    private String imgUrl;

    @ApiModelProperty(value = "图片2")
    private String img2;

    @ApiModelProperty(value = "图片3")
    private String img3;

    @ApiModelProperty(value = "物流属性数字代号列表：1-带磁；2-带电；3-液体；4-粉末；5-易碎；6-膏体；7-化妆品；8-纺织品")
    private List<Integer> logisticsAttributeList;

    @ApiModelProperty(value = "包材类型：1-飞机盒；2-平口箱；3-缓冲袋；4-不干胶；5-胶带；6-衬纸")
    private Integer packingMaterialType;

    @ApiModelProperty(value = "规格尺寸单位: 1-公制；2-英制")
    private Integer specificationUnit;

    @ApiModelProperty(value = "产品/包材信息，多个信息使用-拼接：长度(英寸)-宽度(英寸)-高度(英寸)-重量(盎司)")
    private String specificationProductInfo;

    @ApiModelProperty(value = "包材展开信息，多个信息使用-拼接：长度(英寸)-宽度(英寸)-高度(英寸)")
    private String specificationWrapUnfoldInfo;

    @ApiModelProperty(value = "包装单位: 1-公制；2-英制")
    private Integer wrapUnit;

    @ApiModelProperty(value = "包装产品信息，多个信息使用-拼接：长度(英寸)-宽度(英寸)-高度(英寸)-重量(盎司)")
    private String wrapProductInfo;

    @ApiModelProperty(value = "默认包材skuId，值为包材的skuId")
    private String defaultPackingMaterialSkuId;

    @ApiModelProperty(value = "默认包材sku，值为包材的sku")
    private String defaultPackingMaterialSku;

    @ApiModelProperty(value = "包装类型，1-盒装；2-袋装")
    private Integer wrapType;

    @ApiModelProperty(value = "Ready2Ship：0-否；1-是")
    private Integer readyShip;

    @ApiModelProperty(value = "海关编码")
    private String hsCode;

    @ApiModelProperty(value = "用途中文")
    private String cPurpose;

    @ApiModelProperty(value = "用途英文")
    private String ePurpose;

    @ApiModelProperty(value = "材质中文")
    private String cMaterial;

    @ApiModelProperty(value = "用途英文")
    private String eMaterial;

    @ApiModelProperty(value = "其它申报要素")
    private String otherDeclarationElements;

    @ApiModelProperty(value = "申报金额配置")
    private List<AmountDeclares> amountDeclares;

    @ApiModelProperty(value = "组合产品对应的单个产品信息,如为组合产品此参数不可为空")
    private List<SingleProductInfo> singleProductInfos;

    @ApiModelProperty(value = "本地商品复核信息")
    private LocalProductRecheckVo localProductRecheckVo;


    @Data
    @NoArgsConstructor
    public static class LocalProductRecheckVo {

        @ApiModelProperty(value = "复核图片")
        private String imgUrlRecheck;

        @ApiModelProperty(value = "复核图片2")
        private String img2Recheck;

        @ApiModelProperty(value = "复核图片3")
        private String img3Recheck;

        @ApiModelProperty(value = "复核物流属性数字代号列表：1-带磁；2-纯电；3-液体；4-粉末；5-易碎；6-膏体；7-化妆品；8-纺织品;9-内置电池小于100W*H；10-内置电池>=100W*H; 11-配套电池小于100W*H; 12-配套电池>=100*H; 13-成人用品;14-FDA认证产品;15-原木；16-木质品；17-服装类")
        private List<Integer> logisticsAttributeRecheck;

        @ApiModelProperty(value = "复核规格尺寸单位: 1-公制；2-英制")
        private Integer specificationUnitRecheck;

        @ApiModelProperty(value = "复核产品/包材信息，多个信息使用-拼接：长度-宽度-高度-重量")
        private String specificationProductInfoRecheck;

        @ApiModelProperty(value = "复核包材展开信息，多个信息使用-拼接：长度-宽度-高度")
        private String specificationWrapUnfoldInfoRecheck;

        @ApiModelProperty(value = "复核包装类型，1-盒装；2-袋装")
        private Integer wrapTypeRecheck;

        @ApiModelProperty(value = "复核Ready2Ship：0-否；1-是")
        private Integer readyShipRecheck;
    }
}
